package com.nkzy.domain.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
//统一返回类型：类中有属性 方法
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result{
    private String msg;//状态码，此处可以使用int 类型，也可以使用Integer类型
    private Integer code;//提示信息
    private Object data;//数据
    //    三个属性，状态码，提示信息，数据，都使用private表示对属性私有化，封装性
//    类中方法：构造方法，getter  setter 自定义方法，私有的属性外界不能访问，需要通过方法访问
//    构造方法：无参构造方法，有参构造方法，全参构造方法，默认无参。
//    无参构造方法，有参构造方法：方法重载：同一个类中，方法名相同，参数个数不同，或参数类型不同
//    构造方法作用：创建对象
//    类是抽象的，是对现实世界的抽象
//    用类创建出的对象才是具体有意义的
//java数据类型：基本数据类型（简单数据类型）、引用数据类型（复杂数据类型）
// 基本数据类型：int long char boolean float double short byte boolean
// 引用类型：String 数组、类、接口
// 引用类型数据，一般都提供了一些方法，方便使用。
// 在定义类的属性时，尽量使用引用数据类型，方便使用。
// 为了后续操作方便，在类中可以编写几个静态方法，方便使用。
// 静态方法：不需要对象，直接使用类名.方法名()
// 这个成功的方法一般用于保存、修改、删除等操作成功后，返回一个成功的结果。
    public static Result success(){
        return new  Result("操作成功",200,null);
    }
    //    静态方法：成功返回，返回一个成功结果，并携带数据，用于数据
    public static Result success(Object data){
        return new Result("操作成功",2,data);
    }
    //静态方法：失败返回，返回一个失败结果，并携带数据，用于数据
    public static Result fail(){
        return new Result("操作失败",500,null);
    }


//面向对象编程思想：封装性，继承性，多态性，
// 封装性：属性私有化，getter setter方法，封装性：构造方法，
// 构造方法：无参构造方法，有参构造方法，全参构造方法


//     @Override：父类方法重写，Java所有类都有Object类，所有类都继承了Object
//    @Override
//    public String toString() {
//        return "Result{" +
//                "msg='" + msg + '\'' +
//                ", code=" + code +
//                ", data=" + data +
//                '}';
//    }
}
